package ${package}.service.${classname};

import com.baomidou.mybatisplus.extension.service.IService;
import com.imydao.safetystandard.basic.excel.res.ExcelRes;
import com.imydao.safetystandard.basic.page.res.PageBean;
import com.imydao.safetystandard.basic.res.BaseRes;
import ${package}.db.${classname}.model.${ClassName};
import ${package}.dto.${classname}.excel.${ClassName}ExcelExportDto;
import ${package}.dto.${classname}.excel.${ClassName}ExcelImportDto;
import ${package}.dto.${classname}.req.${ClassName}AddDto;
import ${package}.dto.${classname}.req.${ClassName}EditDto;
import ${package}.dto.${classname}.req.${ClassName}ImportDto;
import ${package}.dto.${classname}.req.${ClassName}ListDto;
import ${package}.dto.${classname}.res.${ClassName}DetailRes;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * ${tableComment}
 *
 * @author ${author} ${email}
 * @since ${version} ${date}
 */
public interface ${ClassName}Service extends IService<${ClassName}> {

    /**
    * 分页列表
    * @param dto 分页请求参数
    * @return 分页列表
    */
    BaseRes<PageBean<${ClassName}>> pageList(${ClassName}ListDto dto);

    /**
    * 保存
    * @param dto 添加对象
    * @return 主键id
    */
    BaseRes<Long> add(${ClassName}AddDto dto);

    /**
    * 编辑
    * @param dto 编辑对象
    * @return 主键id
    */
    BaseRes<Long> edit(${ClassName}EditDto dto);

    /**
    * excel导入
    * @param excel excel
    * @param dto 请求参数
    * @return excel导入结果信息
    */
    BaseRes<ExcelRes<${ClassName}ExcelImportDto>> importExcel(MultipartFile excel, ${ClassName}ImportDto dto);

    /**
    * excel导出数据
    * @param dto 请求参数
    * @return excel导出数据列表
    */
    List<${ClassName}ExcelExportDto> exportExcel(${ClassName}ListDto dto);
                
    /**
    * 根据Id查询详情
    *
    * @param id 主键id
    * @return 详情
    */
    BaseRes<${ClassName}DetailRes> detail(Long id);

    /**
    * 删除
    * @param id 主键id
    * @return 已删除id
    */
    BaseRes<Long> delete(Long id);
}